/*****************************************************************************
	File Name:			AIPlayer.h
	Authors:			Marc Willis, Trey Turley, Thomas Lee
	Class Name:			AIPlayer
	Description:		Describes an AI player in the game Tron.
	Date Modified:		08/08/2010
						-File Created
*****************************************************************************/
#ifndef AIPLAYER_H
#define AIPLAYER_H

#include "Player.h"

class AIPlayer:public Player
{
protected:
	Player *opponent;
public:
/*****************************************************************************
	Function Name:		AIPlayer()
	Description:		Default constructor for the AIPlayer class, creates an
						AIPlayer with default stats
	Input:
		(none)
	Output:
		(none)
*****************************************************************************/
	AIPlayer();
/*****************************************************************************
	Function Name:		AIPlayer(int,int,int,int,GameMap&,Player*)
	Description:		Constructor for the AIPlayer class, creates an AIPlayer
						with the given stats
	Input:
		int x			x of the player
		int y			y of the player
		int dir			direction of the player
		int color		color of the player
		GameMap &g		GameMap to be referenced
		Player *p		a pointer to the opponent
	Output:
		(none)
*****************************************************************************/
	AIPlayer(int,int,int,int,GameMap&,Player*);
/*****************************************************************************
	Function Name:		refreshDir()
	Description:		Gets the next direction based on the GameMap the AI is
						on.
	Input:
		(none)
	Output:
		(none)
*****************************************************************************/
	void refreshDir();
/*****************************************************************************
	Function Name:		getNextX()
	Description:		Gets the predicted next x coordinate for the AI
	Input:
		(none)
	Output:
		int				the next x coordinate
*****************************************************************************/
	int getNextX();
/*****************************************************************************
	Function Name:		getNextY()
	Description:		Gets the predicted next y coordinate for the AI
	Input:
		(none)
	Output:
		int				the next y coordinate
*****************************************************************************/
	int getNextY();
/*****************************************************************************
	Function Name:		setOpponent(Player*)
	Description:		sets the AI's opponent (only used in zero-player mode)
	Input:
		Player *p		a pointer to the opponent
	Output:
		(none)
*****************************************************************************/
	void setOpponent(Player*);
};

#endif